home *** CD-ROM | disk | FTP | other *** search
/ Aminet 51 / Aminet 51 (2002)(GTI - Schatztruhe)[!][Oct 2002].iso / Aminet / gfx / fract / FlashMandelWOS.lha / FlashMandel / ARexx / _bench.rexx < prev    next >
Encoding:
OS/2 REXX Batch file  |  2002-03-19  |  3.3 KB  |  126 lines

  1. /*
  2.     _bench.rexx
  3.  
  4.     Check speed of your system
  5.  
  6.     © 2002 Edgar Schwan
  7.  
  8.     $VER: _bench.rexx 1.0 (18.3.2002)
  9. */
  10.  
  11. PARSE ARG portname ' ' .
  12. IF LENGTH(portname) = 0 THEN
  13.     ADDRESS FLASHMANDEL.1;
  14. ELSE
  15.     ADDRESS VALUE portname;
  16.  
  17. OPTIONS RESULTS;
  18. OPTIONS FAILAT 21;
  19.  
  20. IF ~SHOW('L','rexxsupport.library') THEN      /* load 'rexxsupport.library' */
  21.    CALL ADDLIB('rexxsupport.library',0,-30);
  22.  
  23. Ver = "1.0"
  24. portname = ADDRESS();
  25. OUTCON = "CON:10/10/550/300/Benchmark/SCREEN " || portname;
  26.  
  27. IF OPEN('out', OUTCON, 'RW') THEN DO
  28.   WRITELN('out', "FlashMandelWOS-Benchmark V" || Ver);
  29.   WRITELN('out', "");
  30.   WRITELN('out', "Are you sure to start this benchmark-script?");
  31.   WRITELN('out', "It will need some time, even when you own a PPC.");
  32.   WRITECH('out', "Please select: (Y/N) ");
  33.   choice = READLN('out');
  34.   IF UPPER(choice) = 'Y' THEN DO
  35.  
  36.     elapsed = 0;            /* load mandelbrot-default */
  37.     CLOSE('out');
  38.     'LOAD_PICTURE' 'FLASHMANDEL:pictures/Mandelbrot_def.iff'/* 'FAST'*/
  39.     ADDRESS COMMAND;
  40.     DO WHILE SHOW('P', portname)
  41.       CALL DELAY(10);
  42.       END
  43.     ADDRESS COMMAND 'sys:Rexxc/WaitForPort' portname;
  44.     ADDRESS VALUE portname;
  45.     OPEN('out', OUTCON, 'RW');
  46.  
  47.     'GET_SCREENATTRS' 'ATTRS'
  48.     WRITELN('out', "FlashMandelWOS-Benchmark V" || Ver);
  49.     WRITELN('out', "");
  50.     WRITELN('out', "- Press Ctrl-C to abort! -");
  51.     WRITELN('out', "");
  52.     WRITELN('out', " Your actual screen-dimensions:" );
  53.     WRITELN('out', "  - width: " ATTRS.WIDTH);
  54.     WRITELN('out', "  - height:" ATTRS.HEIGHT);
  55.     WRITELN('out', "  - depth: " ATTRS.DEPTH);
  56.     WRITELN('out', "");
  57.  
  58.     WRITELN('out', " loading mandelbrot-default... ready");
  59.     WRITELN('out', "");
  60.  
  61.     WRITECH('out', " Rendering julia... ");    /* render julia */
  62.     'SET_FRACTAL_TYPE 1'
  63.     COORDS.RMIN = -1.043750
  64.     COORDS.RMAX = 0.036250
  65.     COORDS.IMIN = -0.251250
  66.     COORDS.IMAX = 0.558750
  67.     COORDS.JKRE = -0.704631
  68.     COORDS.JKIM = 0.268573
  69.     'SET_COORDINATES' 'COORDS'
  70.     'START_TIMER'
  71.     'RENDER' 'FORCE'
  72.     'STOP_TIMER'
  73.     elapsed = elapsed + RESULT;
  74.  
  75.     WRITELN('out', "           elapsed (so far):" elapsed "seconds");
  76.     WRITELN('out', "");
  77.  
  78.     WRITECH('out', " Rendering mandelbrot... ");    /* render mandelbrot */
  79.     'SET_FRACTAL_TYPE 2'
  80.     COORDS.RMIN = -0.749892
  81.     COORDS.RMAX = -0.749181
  82.     COORDS.IMIN = -0.045473
  83.     COORDS.IMAX = -0.044939
  84.     COORDS.JKRE = -0.720000
  85.     COORDS.JKIM = -0.260000
  86.     'SET_COORDINATES' 'COORDS'
  87.     'START_TIMER'
  88.     'RENDER' 'FORCE'
  89.     'STOP_TIMER'
  90.     elapsed = elapsed + RESULT;
  91.  
  92.     WRITELN('out', "      elapsed (so far):" elapsed "seconds");
  93.     WRITELN('out', "");
  94.  
  95.     IF ATTRS.DEPTH > 2 THEN DO
  96.       WRITECH('out', " Cycle colors... ");    /* cycle colors */
  97.       'GET_PALETTE' 'COLORS'
  98.       NumColors = (2 ** ATTRS.DEPTH);
  99.       'START_TIMER'
  100.       DO i = 4 TO (NumColors - 2)
  101.         temp = COLORS.4;
  102.         DO s = 4 TO (NumColors - 2)
  103.           next_col = s + 1;
  104.           COLORS.s = COLORS.next_col;
  105.           END;
  106.         last = NumColors - 1;
  107.         COLORS.last = temp
  108.        'SET_PALETTE' 'COLORS' 'FAST'
  109.         END;
  110.       'STOP_TIMER'
  111.       elapsed = elapsed + RESULT;
  112.  
  113.       WRITELN('out', "              elapsed (so far):" elapsed "seconds");
  114.       WRITELN('out', "");
  115.       END
  116.  
  117.     WRITELN('out', "");
  118.     WRITELN('out', " <Please press a key>");
  119.     READLN('out');
  120.     END
  121.  
  122.   CLOSE('out');
  123.   END
  124.  
  125. EXIT 0;
  126.